package com.pithypan.common.utils;

import com.pithypan.common.Constants;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.RandomStringUtils;

import java.util.Random;

/**
 * 工具类
 */
public class StringTools {

    //根据参数生成相应位数的随机数
    public static final String getRandomNumber(Integer count) {
        return RandomStringUtils.random(count, false, true); //是否拥有字母, 是否拥有数字
    }

    //根据参数生成相应位数的随机字符
    public static final String getRandomString(Integer count) {
        return RandomStringUtils.random(count, true, true);
    }


    //判断字符串是否为空
    public static boolean isEmpty(String str) {
        if (str == null || str.equals("") || str.equals("null") || str.equals("\u0000")) {
            return true;
        } else if (str.trim().equals("")) {
            return true;
        }
        return false;
    }


    //对字符串进行md5加密
    public static String encodeByMd5(String orignString) {
        return isEmpty(orignString) ? null : DigestUtils.md5Hex(orignString);
    }


    //判断路径是否合理
    public static boolean pathIsOk(String path) {
        if (StringTools.isEmpty(path)) {
            return true;
        }

        if (path.contains("../") ||path.contains("..\\")) {
            return false;
        }
        return true;
    }


    //在文件名后方加上随机数
    public static String rename(String fileName) {
        String fileNameReal = getFileNameNoSuffix(fileName); //调用自定义方法去除后缀名
        String suffix = getFileSuffix(fileName);               //调用自定义方法获取后缀名
        return fileNameReal + "_" + getRandomNumber(Constants.LENGTH_5) + suffix;
    }


    //去除后缀名
    public static String getFileNameNoSuffix(String fileName) {
        int index = fileName.lastIndexOf("."); //从字符串末尾开始，返回指定字符在字符串中的索引处，如未检测到则返回-1
        if (index == -1) {
            return fileName;
        }
        fileName = fileName.substring(0, index); //起始索引，结束索引 进行截取
        return fileName;
    }


    //截取后缀名
    public static String getFileSuffix(String fileName) {
        int index = fileName.lastIndexOf(".");
        if (index == -1) {
            return "";
        }
        String suffix = fileName.substring(index); //从index开始截取字符串
        return suffix;
    }
 }
